The present invention is generally directed to data processing systems for financial management. More particularly, the present invention is directed to a data processing system that provides substantial throughput for real time standardization, aggregations derivation, consolidation, integration, structuring, storage and distribution of financial data of a broad scope that is obtained from multi-formatted disparate sources.
For at least the last twenty years, the financial industry has been at the leading edge in bringing to practical application new computer systems that manage and support sophisticated transactions and recordkeeping. This aggressive effort is not surprising. The financial industry includes banks, brokerage firms, and investment managers that consider as fundamental to the success of their business, the timely, accurate, and complete processing of transactions associated with the capital and assets of both clients that are both institutional and individual in nature, and of the firms themselves. These transactions include the trading of numerous and diverse forms of financial instruments such as equities (company shares-both common and preferred) warrants, bonds, options, commodities, loans, repurchase agreements, and a full collection of complex fixed income (i.e., bonds) and sophisticated derivative products, denominated in multiple currencies. Due to the increasingly complex nature of these financial instruments, and as the result of mergers and acquisitions, multiple disparate systems are used. Each system is used for one, or a specific subset of, financial products, lines of business, legal entities, currencies, or locations. This specialization has also caused fragmentation, making it difficult for customers and firms to assess their total financial position in time to control risks and respond to opportunities, resulting in the occasional downfall of leading financial institutions, sometimes in spectacular fashion (see FIG. 1). It also makes it difficult to keep regulatory, legal, management, and compliance information consistent and mandates the commitment of substantial resources for correcting the inconsistencies.
As used in this document:
Standardization is the process of conforming disparate values for the same data field into the same standard value, or standardizing a set of fields that describe a business object into a standard set. Examples: standardizing the currency code for Deutsche Marks to xe2x80x9cDEMxe2x80x9d wherever it is used; standardizing the set of fields that fully record a securities purchase transaction; and standardizing the format for transmitting the standard set of fields that describe a customer or counterparty.
Information means values and objects that are created by derivation, aggregation, consolidation, or integration or otherwise acting upon detailed data (xe2x80x9cdataxe2x80x9d).
Derivation is the process of deriving information from a collection of data. For example, when a stock or bond is sold, the currency gain/loss and market gain/loss is derived from a collection of data that include cost basis in local currency, sales proceeds in local currency, currency exchange rate, and taxable or base equivalent currency(ies) for the owner(s) of the Account.
Aggregation is the process of accumulating a net balance from a series of transactions over a period of time. For example aggregating the net currency gain/loss and net market gain/loss for a series of gains and losses that resulted from a series of sell transactions for a customer"" or trader""s account since a given date (account opening, start of the year, start of the quarter, etc.).
Consolidation is the process of 1) grouping Accounts for access and aggregation by criteria such as customer, counterparty, trader, investment manager, book, desk, legal entity, location, and the like; 2) creating a composite of market data that pertains to each financial instrument from data that originates from multiple sources (e.g. identifiers, prices, indicative data, and corporate action announcements for the same financial instrument are received from separate sources and are consolidated into a composite); and 3) creating a composite of data pertaining to the same customer or counterparty that originates from multiple sources (e.g., identifiers, addresses, settlement instructions, credit authorizations, buying preferences, access authorizations, etc. for the same customer or counterparty are received from separate sources and are consolidated into a composite).
Structuring is the process of organizing data, and information that is derived from the data, into interrelated, normalized structures that resolve redundancies and anomalies. This includes the addition of unique values that are used to create xe2x80x9cprimary-foreign keyxe2x80x9d relationships that interrelate pairs of data tables.
Integration is the process of interrelating and information across disciplines. For example, interrelating a Position (i.e., a Quantity and Cost of a Financial Instrument) with the indicative and price information about the Financial Instrument in which the Position is held; and also interrelating the Position with the descriptive information (e.g., processing instructions, address) about the Customer that owns the Position, the Account in which the Position is held, the Counterparty that is the custodian for the Position, and the Counterparty (e.g. dealer) that is responsible for delivering the Position (when pending settlement) to the custodian. Integration also means that messages are sent among components of the system to produce an integrated result. For example, when the Market Data Information Server receives a corporate action notification, it creates an entitlement message that instructs the Accounting Information Server by what amount to adjust Positions and/or Cash Receivable, and also sends a message to the Alert Notification Server to send a notification to the Customers or Counterparties that are entitled to the proceeds of the corporate action.
Storage is the process of recording data and information in a relational-object database. This includes the addition of physical keys, indexes, and the like that support rapid and flexible access to the data and information.
Distribution is extracting data and information from a database and sending it to one or more application systems or user desktop computers. This process often also consists of denormalizing and translating the data and information into a format and value set that is most easily processed by the receiving application or user desktop (i.e., web server application that presents data to a browser-based user desktop).
Risk-exposure, inventory, liquidity, and the like-is dynamically altered with each transaction. Numerous functions within the firm have substantial interest in seeing these details-and quickly. For example, firms are particularly concerned with knowing the availability and location of all collateral that can be used to raise funds quickly in the event of a liquidity shortage, and on the most favorable terms. The risk manager also seeks the firm""s, or a counterparty""s, total position and cash versus each counterparty and currency, integrated with current and complete details (i.e., xe2x80x9cmarket dataxe2x80x9d) of each financial instrument that is traded in customer portfolios or in the firm""s inventory, to input into automated risk assessments. Based on the resulting information, the risk manager acts to rebalance positions of the firm or the customer so that its exposure may be reduced. The sooner the inputs can be gathered, standardized, aggregated, and consolidated, the sooner the risk assessment can be performed and corrective action can be taken.
Other examples include the high profile governmental regulations that apply to many, if not most, financial institutions. Specifically, essentially every firm includes dedicated resources to insure regulatory compliance, sometimes with entire departments focused on this task. Firm profitability, general ledger, and financial statement activities also involve time sensitive assessment and refinement of account activities and transactions. And, of course, perhaps the most critical is the reporting to and maintaining good client communications-including rapid reporting of trades and the like, and proactively alerting the customer, investment manager, trader and all other interested parties when a transaction or market change has created a situation that requires immediate attention or response.
These examples are merely illustrative of the ongoing need by almost every customer and functional group within the firm for current and projected transaction, position, balance, and market information that is continuously consolidated by customer, counterparty, currency, financial instrument, and other criteria. To accomplish this for a large and growing audience of simultaneous users requires that the information must be standardized; edited and enriched; aggregated and consolidated; integrated and structured; and stored into and distributed from; a widely accessible and sharable, and individually useful database that is continuously updated on a real-time, or near real-time basis.
FIG. 2 provides a functional block diagram depicting sources of financial data and consumers of financial data and information. Many functional groups within the firm, and virtually all classes of customers, need access to both data and information.
Recognizing the importance of getting data and information to key functions within and external to the firm, various techniques have been developed. These techniques are graphically depicted in FIG. 3xe2x80x94which is a rough characterization of data flows and information creation within an organization. In this depiction, three different types of financial instruments are transacted, block 10, as recorded in transaction data records 20 being aggregated on reports 30 within each of three separate regions (e.g., Tokyo) 40. For each type of financial instrument (e.g., equities, fixed income, options), in each region, a similar path will exist, but the timing of the processing, and the information created on the reports will be substantially different. A similar set of disparate flows occur in each region for market data records that contain changes to attributes describing available fixed income instruments (e.g., rating, interest rate) and, separately, market data records that contain changes to attributes describing available equities (e.g., price, dividend declaration), for example.
Finally, similar sets of disparate flows occur in each region for data records that contain changes to attributes (e.g., addresses, settlement instructions, credit rating). Pertaining to various types of customers (e.g., retail brokerage, corporate lending, insurance, mutual fund) and counterparties (broker/dealers, investment managers).
Three key attributes are indicated in this representation. First, data travels and is transformed into reports along parallel paths, but in essentially isolated fashion. This is typically a 24-hour cycle, at best, and often occurs only weekly by batch processing accumulated transactions during the period of interest. Second, information is distributed in the form of reports, with the entire report mailed or transmitted to all recipients. As a result, consolidating accounts, positions, and cash for a customer or the firm (or any subdivision thereof), block 50, can only occur once every 24 hours or even once per week, can require substantial manual or off-line sub-processes to extract and manipulate data and information that is only available in the reports, and even then often produces outputs that have significant errors and omissions. Thirdly, if the information that is desired at block 50 is not contained in or cannot be derived from the set of reports produced at block 40, the user must do its financial management in absence of the needed information, and request that a new report be programmed, or a modification be made to an existing report, either of which can be a time-consuming and expensive process.
While the above representation depicts three data flows, the actual number of such data flows can number into the 100""s, makings the costs of obtaining timely consolidated information prohibitive. Even for those with substantial resources, it often takes years to get the data sorting and distribution properly structured. Even then, the traditional approach depicted in FIG. 3 often does not provide enough information, soon enough to prevent otherwise preventable financial losses. Simply stated, traditional techniques are inadequate. What is needed is a current, integrated, accurate and comprehensive information management system providing consolidated transaction, position, balance, market data, and customer/counterparty data (xe2x80x9cconsolidated informationxe2x80x9d) to customers, employees, and counterparties of the firm within a tightly controlled time periodxe2x80x94ideally in real-time.
It was with this understanding of the difficulties remaining in financial information management that formed the impetus for the present invention.
It is, therefore, an object of the present invention to provide a data processing system and platform that provides an integrated, real-time data and information consolidation and distribution solution for financial institutions.
It is another object of the present invention to provide a computer system that receives incoming stochastic data records from plural disparate systems and data sources relating to financial transactions, financial instruments, customers, counterparties, employees, organizational units, and financial institutions; converts this disparate data into a common format; and derives information from the data; consolidates and integrates the data and information on a database that is defined according to a comprehensive financial industry data model; distributes the data and information electronically and automatically publishes the data and information to subscribers; and provides access to this data and information for real-time inquiry by various functional areas and customers of a financial services enterprise.
It is yet another object of the present invention to provide a system that consolidates both the incoming data, and the information that the system derives from such incoming data, in a well-defined database that supports multi-report generation in essentially real-time by a wide range of users making use of a wide range of programming languages and higher-level information reporting tools.
It is still another object of the present invention to provide a scalable active message driven distributed network architecture that operates on several different commercially available computer hardware, operating system, and database management system platforms.
It is another object of the present invention to provide a management information system that continuously posts transactions to positions, lots and cash balances, maintains one or more cost bases for each position and lot in both trade currency and multiple base currency equivalents, calculates currency and market gain/loss and profit/loss, aggregates and nets payables and receivables, performs amortization and accretion, accrues income, calculates position valuations, and maintains position, cash and valuation history, buying power, and margin maintenance amountsxe2x80x94by customer, fund, product, trader, investment manager, counterparty, legal entity, desk, subdivision, location, and the like.
It is still another object of the present invention to provide a generated, object-oriented computer system (e.g., a set of generated instantiations of C++ and/or Java object classes) that updates a database that is structured according to a data model that relates data and information pertaining to financial transactions (settled and forecast), financial instruments, customers, counterparties, employees, organizational units, and financial institutions, and that simplifies roll-up and drill-down between hierarchical levels of aggregated information and the lowest level of data details, as well as simplifies access to user-defined, recursive groupings of data and information.
It is yet another object of the present invention to provide a library of business objects that provide easy access to the database according to business subjects such as xe2x80x9cAccountxe2x80x9d, xe2x80x9cCustomerxe2x80x9d, xe2x80x9cPositionxe2x80x9d, xe2x80x9cStockxe2x80x9d, xe2x80x9cBondxe2x80x9d, xe2x80x9cDerivativexe2x80x9d, xe2x80x9cCounterpartyxe2x80x9d, xe2x80x9cTransactionxe2x80x9d, and the like, regardless of how the collection of data and information that pertains to each business subject may be physically arranged and structured on the database (including the core database, as well as the time series index, search index, reporting images, and the like.)
It is yet another object of the present invention to provide a computer platform that permits access through a unified, Internet-enabled, lightweight, scalable, user interface that supports browser-based inquires, updates, and reporting and requires minimal code to be installed and maintained on each user""s personal computer or other personal access device.
It is yet another object of the present invention to proactively alert users and other applications when a situation occurs that warrants immediate attention. For example, alert the appropriate users and applications that as the result of a transaction, market change, or customer/counterparty change, a financial threshold or limit has been breached.
It is yet another object of the present invention to provide client workstations that include thin client access to a remote database employing technologies such as HTML, DHTML, Java, and other Web-enabled user interface technologies.
It is yet another object of the present invention to provide a message-driven, object-oriented, generated component architecture that both processes and publishes messages that conform to popular message standards (e.g., FIX, ISITC, S.W.I.F.T., OFX, ISO, and the like) by using the Extensible Markup Language (XML) and that achieves high scalability via multi-processing and parallel processing on Unix, NT, and mainframe computing configurations.
It is still another object of the present invention to provide a workstation that allows users to enter and modify business rules that are recorded in database tables and that designate the specific information that is to be derived from each type of incoming transaction, market data record, or customer/counterparty update record; thus allowing more and different information to be created and stored in the database without requiring revision to the production code. The workstation has a graphical user interface which requires minimal formal programming training or experience to use effectively. These business rules permit dynamic instruction of server-based components that contain multi-currency, multi-product, and multi-entity bookkeeping logic; market data cleansing, consolidation and distribution logic; and user/customer/counterparty data collection logic. By manipulating the business rules, the user can tailored the processing performed by, and the information created and stored by the system, as desired by different customer or user segments.
It is still another object of the present invention to provide a utility that automatically transforms the business rules from entries in data tables into executable objects that perform such tailored business functions at high speeds.
The above and other objects of the present invention are realized in an integrated set of object-oriented (e.g., C++, Java, and the like) software components that are configured as a distributed processing network and as such constitute a computer system that receives input records that contain the data elements that comprise or describe financial transactions (settled and pending), financial instruments, customers, counterparties, employees, organizational units, and financial institutions, derives information from such data elements by coordinating its aggregation, calculation, and consolidation, interrelates the data and information when storing it in a database that is designed for organizing, storing, and retrieving such data and information, and proactively distributes the data and information according to pre-defined instructions (e.g., alert users that a transaction has caused a negative cash balance to occur that is below a pre-defined minimum amount, and alert users again if the cash shortage has not been covered within a pre-defined time allowance). The database structure and update functions are such that the incoming data is processed and combined with the previously stored data and information to form a continuous, real-time integration of critical customer, market, and firm information. The database may be accessed simultaneously by numerous different financial firm employees, customers, counterparties, and analytical software applications via a variety of network connections (e.g., Internet, intranet, LAN, WAN, private network, and the like). Trade and settlement transactions are processed providing consolidated current and projected balances and positions across customers, accounts, books, funds, traders, investment managers, counterparties, settlement and business locations, legal entities, and the like.
The invention includes plural servers, each of which is called upon to perform functionality relevant to a particular input message, inquiry or report request, alert situation, or other subset of financial data processing. As shown in FIG. 4, these servers include: an Interface Transformation Server that maps and reformats incoming messages into a system-compliant format; a Message Bus component which transports the message to a Controller component that distributes workload (input messages) to the appropriate information server; an Accounting Information Server for processing messages that contain transactions and deriving positions, lots, and balances on a trade date and settlement date accrual accounting basis; a Market Data Information Server that processes messages that contain data records from multiple disparate market data sources and derives a composite of each financial instrument (of virtually any type); a Customer/Counterparty Information Server that processes messages that contain data records from multiple disparate sources that describe, and record standing processing instructions for, customers and counterparties and derives a composite of each customer, counterparty, and financial institution; a Calculation Server that performs financial calculations such as valuations, gain/loss, and the like; an Alert Notification Server that alerts users when a financial threshold, such as a credit or trading limit, has been crossed; a Data Distribution Server that proactively and electronically publishes data and information to users and other programs; a Web Server that manages database updates and retrievals from/to browser-based or other xe2x80x9cthin clientxe2x80x9d access devices; a Search Engine that enables expedient free-form searches against the data and information in the database; a Reporting Engine that produces reports in volume and electronically routes the reports to the appropriate recipients; and a Time Series Engine that enables expedient date-and-time searches against the data and information in the database. Multiple instances of any server can be added dynamically to increase processing throughput.
Because incoming data records have multiple, disparate formats, select middleware interprets each incoming data record (i.e., message) and transforms it into the record format (i.e., message format) that is recognized and processed by the appropriate information server.
The foregoing features of the present invention are better understood by review of an illustrative embodiment thereof as described here in conjunction with the following diagrams: